Thanks to Dave MacEwan and Peter Girard for the great ideas. I believe Peter's method for determining the sunrise/ sunset times would produce exactly what I need. I just started to formulate an outline for the rather involved code it would require, when I received an email from the Solar Analyst programmer that he could help us on a special contract to modify the model to output the sunrise / sunset times directly. That is the most straight-forward solution, so we are looking into that. I didn't get any responses from anyone saying they had used Solar Analyst. - Stacey (original question is below) -- from Dave MacEwan Check out the US Naval Observatory's Astronomical Applications Department web page at http://aa.usno.navy.mil/. Under "Data Services" there are applications that will give you tables of sunrise/sunset times and other stuff. Maybe you will find this useful. --from Peter Girard Have a look at the JavaScript code that supports this web page: http://www.srrb.noaa.gov/highlights/sunrise/azel.html It computes the position of the sun for any time and location and includes the correction for atmospheric refraction. The mathematics for this come primarily from "Astronomical Algorithms" by Jean Meuss, worth getting if you will need to deal with this in some depth. In general, this is how I would go about solving the problem: 1) Use the algorithm to calculate a series of azimuth/altitude points for the time around sunrise/sunset. 2) Using the range of azimuths from step 1, sample the surface model along that part of the horizon, generating a second set of azimuth/altitude points. 3) Treating both sets of points as polylines, find where they intersect. This should be the approximate azimuth/altitude on the horizon where the sun rises/sets. Interpolate the approximate time when the sun is at this point. 4) Repeat steps 1-3 using finer sampling to get a more precise time. The performance bottleneck will probably be in the horizon calculations from the surface model. The rest should go quite quickly on a modern machine. ESRI provides a sample extension called Visibility Tools (vistool.avx and .apr) that contains a Line of Sight tool. When you digitize a line, it symbolizes which parts of the line are visible from the first point to the second. If the second point is sufficiently far from the first, the last visible point along this line would be the horizon (as long as it's not the edge of the grid, of course). The main script in this extension is "SA: Line of Sight Profile", and it uses the Grid.CellValueList request to get the visible points along the line. Direct sampling of elevations off a grid does not take into account the curvature of the Earth or atmospheric refraction. You may need to figure these into the line of sight analysis if you are dealing with distant mountains. --original question. Hi. I'm wondering if anyone out there has used Solar Analyst or TopoView (Hemisoft,Inc). I have been using it quite extensively and have developed several scripts for batch processing. I have been in contact with the Solar Analyst developers, but have been unsuccessful getting answers to a couple of basic questions: How to determine the duration interval starting times automatically -- we need to know sunrise and sunset times precisely. Also, how do you get duration in partial hour output (instead of rounded to whole hours) if your output is in GRID format (is the model set up for integer grids only?). If you have any ideas, or just have experience with Solar Analyst or TopoView, I'd be interested in hearing from you. Thanks!! Stacey L. Stark stark.stacey@epa.gov GIS Analyst, CSC Mid-Continent Ecology Division, EPA 6201 Congdon Blvd. Duluth, MN 55804 (218) 529-5214